/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.upc.dew.cobranzas.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import pe.edu.upc.dew.cobranzas.model.Propiedad;

public class PropiedadDaoImpl implements PropiedadDao {

    private List<Propiedad> propiedades;

    public PropiedadDaoImpl() {
        this.propiedades = new ArrayList<Propiedad>();
        this.cargaPropiedades();
    }

    private void cargaPropiedades() {

        Connection connection = null;
        Propiedad propiedad = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            connection = ConnectionUtils.getConnection();
            st = connection.createStatement();
            rs = st.executeQuery("select * from T_Propiedad");
            rs.next();
           do  {

                propiedad = new Propiedad();
                propiedad.setIdPropiedad(rs.getInt("idPropiedad"));
                propiedad.setDireccion(rs.getString("direccion"));
                propiedad.setDistrito(rs.getString("distrito"));
                propiedad.setTipo(rs.getString("tipo"));
                propiedad.setSala(rs.getBoolean("sala"));
                propiedad.setComedor(rs.getBoolean("comedor"));
                propiedad.setGarage(rs.getBoolean("garage"));
                propiedad.setNroCuartos(rs.getInt("nroCuartos"));
                propiedad.setNroBaños(rs.getInt("nroBaños"));
                propiedad.setNroAmbientes(rs.getInt("nroAmbientes"));
                this.propiedades.add(propiedad);

            } while (rs.next());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ConnectionUtils.closeResultSet(rs);
            ConnectionUtils.closeStatement(st);
            ConnectionUtils.closeConnection(connection);
        }

    }

    public Propiedad getPropiedadPorId(Integer idPropiedad) {
        Propiedad propiedad = new Propiedad();
        for (int i = 1; i <= this.propiedades.size(); i++) {
            if (this.propiedades.get(i - 1).getIdPropiedad() == idPropiedad) {
                propiedad = this.propiedades.get(i - 1);
                break;
            }
        }

        return propiedad;
    }

    public List<Propiedad> Listado() {
        return this.propiedades;
    }
}
